package com.run2code.design.behavioral.visitor;

/**
 * 计算价格访问者类，实现了ProductVisitor接口
 * 关注公众号【奔跑的码畜】，一起进步不迷路
 *
 * @author 第七人格
 * @date 2024/06/25
 */
class CalculatePriceVisitor implements ProductVisitor {  
    private double totalPrice = 0; // 用于累计总价格  
  
    // 实现访问书籍的方法，累加书籍的价格到总价格中  
    @Override  
    public void visitBook(Book book) {  
        totalPrice += book.getPrice();  
    }  
  
    // 实现访问电子产品的方法，累加电子产品的价格到总价格中  
    @Override  
    public void visitElectronicDevice(ElectronicDevice device) {  
        totalPrice += device.getPrice();  
    }  
  
    // 获取总价格的方法  
    public double getTotalPrice() {  
        return totalPrice;  
    }  
}